//
// RTSPResponse.h
//
// $Id: //base/include/RTSPResponse.h
//
// Library: base
// Package: RTSP
// Module : RTSPResponse
// Author :	Jelin,doitsjz@163.com
// Date	  :	10/30/2012
// 
// Definition of the RTSPResponse class.
//
// Copyright (c) 2012-2012, iGuard.
//


#ifndef BASE_HTTPRESPONSE_INCLUDED
#define BASE_HTTPRESPONSE_INCLUDED



#include "base.h"
#include "Poco/Net/HTTPResponse.h"

/**
	BaseHTTPResponse for class
*/
using Poco::Net::HTTPResponse;

class BASE_API BaseHTTPResponse: public HTTPResponse
{
public:
	BaseHTTPResponse();
	BaseHTTPResponse(HTTPStatus status, const std::string& reason);
	BaseHTTPResponse(const std::string& version,HTTPStatus status, const std::string& reason);
	BaseHTTPResponse(HTTPStatus status);
	BaseHTTPResponse(const std::string& version,HTTPStatus status);
	virtual ~BaseHTTPResponse();
	void setContentBody(const std::string& body);
	const std::string& getContentBody() const;	
	void write(std::ostream& ostr) const;
	void read(std::istream& istr);
	void setMessage(const std::string& message);
	void getMessage(std::string& message);
private:
	
	BaseHTTPResponse(const BaseHTTPResponse&);
	BaseHTTPResponse& operator = (const BaseHTTPResponse&);
private:
	std::string _body;
};

#endif